Nowadays Internet is experiencing a period of “decentralization”. A user's device, called as a “farmer”, dedicates a part of its computing power to run a corresponding network and a part of its hard drive to store files or data. The device system is often decomposed into different components regardless of the complexity, in which each component serves a specific purpose for the system. Such a “decentralization” enables each component to be built by thousands of application programming interface (APIs) with various capabilities and limitations.
In particular, a smart system, e.g., a smart device system, may be able to decide which API each component should use to maximize the entire system's performance under a given limitation. For example, a conversation system often includes a voice recognition module, an intention identification module and a question-answer matching module, in which several different APIs may be implement into each module. However, it may be difficult to predict whether these APIs will perform well given different contexts. It is possible that certain APIs may perform better in certain modules than other APIs. Further, it may be difficult for the user to estimate the performance of each API without a big-data testing. Even if the performance of each API could be precisely estimated, optimizing the decisions of choosing APIs given various limitations (such as budget and network latency, etc.) is still highly desired.
The disclosed systems and methods are directed to solve one or more problems set forth above and other problems.